/* ****************************************************************************
 *
 * Copyright (c) Microsoft Corporation. 
 *
 * This source code is subject to terms and conditions of the Microsoft Public License. A 
 * copy of the license can be found in the License.html file at the root of this distribution. If 
 * you cannot locate the  Microsoft Public License, please send an email to 
 * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound 
 * by the terms of the Microsoft Public License.
 *
 * You must not remove this notice, or any other, from this software.
 *
 *
 * ***************************************************************************/
#if FULL
using System;

namespace Microsoft.Scripting.Ast {
    [Serializable]
    internal class ExpressionReturnException : Exception {
        public readonly object Value;
#if DEBUG
        // used verify that we always handle the exception w/ the correct handler
        // and no catch(Exception) sneaks in and catches our exception.
        [ThreadStatic]
        internal static int CurrentDepth;
        public int Depth;
#endif

        public ExpressionReturnException(object value) {
            Value = value;
#if DEBUG
            Depth = CurrentDepth;
#endif
        }
    }
}
#endif